{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "8dfbb72d-d41d-4d00-80a2-ab699a5a2683",
   "metadata": {},
   "outputs": [],
   "source": [
    "import getpass\n",
    "import os\n",
    "\n",
    "try:\n",
    "    # load environment variables from .env file (requires `python-dotenv`)\n",
    "    from dotenv import load_dotenv\n",
    "\n",
    "    _ = load_dotenv()\n",
    "except ImportError:\n",
    "    pass\n",
    "\n",
    "if not os.environ.get(\"DASHSCOPE_API_KEY\"):\n",
    "  os.environ[\"DASHSCOPE_API_KEY\"] = getpass.getpass(\"Enter API key for OpenAI: \")\n",
    "\n",
    "from langchain_community.chat_models.tongyi import ChatTongyi\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "6b543a7f-2087-47b7-890d-5e8605d831d7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AIMessage(content='好的！我们来一步步解决这个问题。首先明确目标是制作一道美味的西红柿炒鸡蛋，并且需要详细说明每一步骤。我们将按照逻辑顺序进行分析。\\n\\n---\\n\\n### 第一步：明确食材需求\\n为了制作西红柿炒鸡蛋，我们需要以下主要食材：\\n1. **西红柿**：2个中等大小（约300克）。\\n2. **鸡蛋**：3个。\\n3. **调味料**：盐、糖、食用油（植物油或橄榄油）。\\n\\n此外，可以根据个人口味添加一些葱花或香菜作为装饰。\\n\\n---\\n\\n### 第二步：准备食材\\n在开始烹饪之前，我们需要对食材进行处理：\\n1. **西红柿**：洗净后切成小块（约2厘米见方），这样更容易入味。\\n2. **鸡蛋**：打入碗中，加入少许盐（约1/4茶匙），用筷子搅拌均匀，打散成蛋液。\\n3. **其他调料**：准备好盐、糖（根据个人口味，约1/8茶匙即可），以及适量的食用油。\\n\\n---\\n\\n### 第三步：分析烹饪步骤\\n接下来，我们需要决定烹饪的顺序和时间安排。以下是详细的步骤：\\n1. **热锅凉油**：将锅预热至中火，倒入适量的食用油（约1汤匙）。油温五成热时（即手放在锅上方能感受到热度但不烫手），倒入打散的鸡蛋液。\\n   - 鸡蛋液会迅速凝固，此时用铲子轻轻翻炒，使其均匀受热。\\n   - 炒至鸡蛋呈金黄色且稍微凝固时，盛出备用。\\n   - **原因**：先炒鸡蛋是为了避免鸡蛋与西红柿长时间接触导致过老。\\n\\n2. **炒西红柿**：将切好的西红柿块放入锅中，加入少量盐（约1/8茶匙），翻炒至西红柿变软并释放出汁水。\\n   - 如果喜欢甜味，可以在此时加入少许糖（约1/8茶匙），帮助提鲜。\\n   - 继续翻炒，直到西红柿完全软烂，汤汁浓稠。\\n\\n3. **混合鸡蛋和西红柿**：将之前炒好的鸡蛋重新倒入锅中，与西红柿一起翻炒均匀。\\n   - 让鸡蛋充分吸收西红柿的汤汁，增加风味。\\n   - 根据需要调整盐的用量。\\n\\n4. **出锅装盘**：炒好后关火，将菜肴盛入盘中，可撒上一些葱花或香菜点缀。\\n\\n---\\n\\n### 第四步：总结注意事项\\n- **火候控制**：炒鸡蛋时火不要太大，以免鸡蛋炒得过老；炒西红柿时火稍大一点，有助于快速出汁。\\n- **调味适量**：盐和糖的用量可以根据个人口味微调，但不宜过多，以免掩盖食材本身的鲜味。\\n- **摆盘美观**：如果追求视觉效果，可以用勺子将菜肴整理成整齐的形状，再撒上葱花或香菜。\\n\\n---\\n\\n### 最终答案\\n西红柿炒鸡蛋的做法如下：\\n1. 准备2个西红柿和3个鸡蛋；\\n2. 西红柿切块，鸡蛋打散加盐搅拌均匀；\\n3. 热锅凉油，先炒鸡蛋至金黄，盛出备用；\\n4. 再炒西红柿，加入盐和糖，待软烂后加入鸡蛋翻炒均匀；\\n5. 出锅装盘，撒上葱花或香菜即可。\\n\\n**完成！**  \\n$$\\n\\\\boxed{\\\\text{西红柿炒鸡蛋制作完成！}}\\n$$', additional_kwargs={}, response_metadata={'model_name': 'qwen-turbo', 'finish_reason': 'stop', 'request_id': '29b15cd1-697a-9983-b9ee-af1a5a2c3380', 'token_usage': {'input_tokens': 40, 'output_tokens': 761, 'total_tokens': 801, 'prompt_tokens_details': {'cached_tokens': 0}}}, id='run--4b490473-4179-4ebb-bf78-207fa59a9ef9-0')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "llm = ChatTongyi(\n",
    "    streaming=True,\n",
    "    name=\"qwen-turbo\"\n",
    ")\n",
    "# 准备问题\n",
    "question = \"\"\"\n",
    "请逐步推理以下问题并展示完整的思考过程：\n",
    "\n",
    "问题：如何做西红柿炒鸡蛋？请详细展示你的计算和逻辑步骤，最后给出答案。\n",
    "\"\"\"\n",
    "\n",
    "# 发送请求并接收回答\n",
    "response = llm.invoke(question)\n",
    "\n",
    "response"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "126c16f8-0745-48e9-aa16-c32b0fffec34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ChatTongyi(name='qwen-max', client=<class 'dashscope.aigc.generation.Generation'>, model_kwargs={}, dashscope_api_key=SecretStr('**********'), streaming=True)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "llm"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe1f9817-d36e-4472-bc2b-163d17cac104",
   "metadata": {},
   "source": [
    "好的！我们来一步步解决这个问题。首先明确目标是制作一道美味的西红柿炒鸡蛋，并且需要详细说明每一步骤。我们将按照逻辑顺序进行分析。\\n\\n---\\n\\n### 第一步：明确食材需求\\n为了制作西红柿炒鸡蛋，我们需要以下主要食材：\\n1. **西红柿**：2个中等大小（约300克）。\\n2. **鸡蛋**：3个。\\n3. **调味料**：盐、糖、食用油（植物油或橄榄油）。\\n\\n此外，可以根据个人口味添加一些葱花或香菜作为装饰。\\n\\n---\\n\\n### 第二步：准备食材\\n在开始烹饪之前，我们需要对食材进行处理：\\n1. **西红柿**：洗净后切成小块（约2厘米见方），这样更容易入味。\\n2. **鸡蛋**：打入碗中，加入少许盐（约1/4茶匙），用筷子搅拌均匀，打散成蛋液。\\n3. **其他调料**：准备好盐、糖（根据个人口味，约1/8茶匙即可），以及适量的食用油。\\n\\n---\\n\\n### 第三步：分析烹饪步骤\\n接下来，我们需要决定烹饪的顺序和时间安排。以下是详细的步骤：\\n1. **热锅凉油**：将锅预热至中火，倒入适量的食用油（约1汤匙）。油温五成热时（即手放在锅上方能感受到热度但不烫手），倒入打散的鸡蛋液。\\n   - 鸡蛋液会迅速凝固，此时用铲子轻轻翻炒，使其均匀受热。\\n   - 炒至鸡蛋呈金黄色且稍微凝固时，盛出备用。\\n   - **原因**：先炒鸡蛋是为了避免鸡蛋与西红柿长时间接触导致过老。\\n\\n2. **炒西红柿**：将切好的西红柿块放入锅中，加入少量盐（约1/8茶匙），翻炒至西红柿变软并释放出汁水。\\n   - 如果喜欢甜味，可以在此时加入少许糖（约1/8茶匙），帮助提鲜。\\n   - 继续翻炒，直到西红柿完全软烂，汤汁浓稠。\\n\\n3. **混合鸡蛋和西红柿**：将之前炒好的鸡蛋重新倒入锅中，与西红柿一起翻炒均匀。\\n   - 让鸡蛋充分吸收西红柿的汤汁，增加风味。\\n   - 根据需要调整盐的用量。\\n\\n4. **出锅装盘**：炒好后关火，将菜肴盛入盘中，可撒上一些葱花或香菜点缀。\\n\\n---\\n\\n### 第四步：总结注意事项\\n- **火候控制**：炒鸡蛋时火不要太大，以免鸡蛋炒得过老；炒西红柿时火稍大一点，有助于快速出汁。\\n- **调味适量**：盐和糖的用量可以根据个人口味微调，但不宜过多，以免掩盖食材本身的鲜味。\\n- **摆盘美观**：如果追求视觉效果，可以用勺子将菜肴整理成整齐的形状，再撒上葱花或香菜。\\n\\n---\\n\\n### 最终答案\\n西红柿炒鸡蛋的做法如下：\\n1. 准备2个西红柿和3个鸡蛋；\\n2. 西红柿切块，鸡蛋打散加盐搅拌均匀；\\n3. 热锅凉油，先炒鸡蛋至金黄，盛出备用；\\n4. 再炒西红柿，加入盐和糖，待软烂后加入鸡蛋翻炒均匀；\\n5. 出锅装盘，撒上葱花或香菜即可。\\n\\n**完成！**  \\n$$\\n\\\\boxed{\\\\text{西红柿炒鸡蛋制作完成！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fad04c8c-3a46-4214-9d34-bda3251f3e03",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
